package com.utn.tp.integrador.controlador;

import android.content.Context;
import android.content.SharedPreferences;
import android.os.AsyncTask;
import android.preference.PreferenceManager;
import android.widget.Toast;

import com.utn.tp.integrador.bd.BaseDatosSingleton;
import com.utn.tp.integrador.entidades.Usuario;
import com.utn.tp.integrador.manejomensajes.InfoServicioWeb;
import com.utn.tp.integrador.manejomensajes.ServicioWebSingleton;

public class RegistrarUsuarioAsyncTask extends
		AsyncTask<String, Integer, InfoServicioWeb> {

	Usuario usuario;
	Context context;

	public RegistrarUsuarioAsyncTask(Usuario usuario, Context context) {
		this.usuario = usuario;
		this.context = context;
	}

	@Override
	protected InfoServicioWeb doInBackground(String... params) {
		InfoServicioWeb result = null;

		try {
			result = ServicioWebSingleton.getInstance(
					usuario.getNombreUsuario(), usuario.getPassword())
					.registerUser();
		} catch (Exception e) {
		}

		if (result != null && InfoServicioWeb.SUCCESS == result.getCode()) {
			BaseDatosSingleton.getInstance(context).getBaseDatos()
					.registrarUsuarioPropio(usuario);
		}

		return result;
	}

	@Override
	protected void onPostExecute(InfoServicioWeb result) {
		super.onPostExecute(result);
		if (result != null && result.getType() != null
				&& result.getType().equals(InfoServicioWeb.SUCCESS_MESSAGE)) {
			Toast.makeText(context, "Usuario registrado con exito",
					Toast.LENGTH_LONG).show();
			if (PreferenceManager.getDefaultSharedPreferences(context)
					.getBoolean("firstTime", true)) {
				SharedPreferences.Editor editor = PreferenceManager
						.getDefaultSharedPreferences(context).edit();
				editor.putBoolean("firstTime", false);
				editor.commit();
			}
		} else {
			Toast.makeText(context, "Error al registrar el usuario",
					Toast.LENGTH_LONG).show();
		}
	}
}
